package com.qf.user.service;

import com.qf.user.exception.SignInIsLockedException;
import com.qf.user.exception.SignInNameUnknownException;
import com.qf.user.exception.base.UserException;
import com.qf.user.model.User;

/**
 * @author 汤奇
 * @version V1.0
 * @Project BookPro
 * @Package com.qf.user.service
 * @Description: 用户的业务逻辑定义
 * @Date 2022/7/29 20:36
 */
public interface UserService {

    /**
     * 用户登录的方法
     * @param signInName  登录名
     * @param password      密码
     * @return                         返回用户对应的user对象
     */
    User signIn(String signInName, String password) throws UserException;

    /**
     * 判断用户是否被锁定
     * @param signInName  登录名
     * @return                         如果没有被锁定就返回实体对象
     */
    User isLocked(String signInName);

    /**
     * 根据手机号查询用户
     * 如果手机号不存在, 就新增一个对应的用户返回
     * @param phone  手机号
     * @return  手机号对应的user
     */
    User findOrSIgnUp(String phone);

    /**
     * 更新用户的头像
     * @param userId 用户id
     * @param url       用户头像的url
     * @return              数据库操作返回的结果
     */
    int updateIconByUserId(Long userId, String url);
}
